/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package trabalhocompiladores.persistencia.XML;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import trabalhocompiladores.entidade.Automato;
import trabalhocompiladores.persistencia.IPersistencia;

/**
 *
 * @author u031254
 */
public class PersistenciaXML implements IPersistencia {

    @Override
    public void save(Object automato, File arquivo) {
        //Cria uma instância da classe XStream
        XStream xStream = new XStream(new DomDriver());
        //Escolher um nome para o xml
        xStream.alias("automato", Automato.class);
        //Grava no diretório padrão do projeto, fica na própria pasta do projeto.
        FileOutputStream gravar;

        try {
            //grava o arquivo
            gravar = new FileOutputStream(arquivo);
            //insere os bytes no XML
            gravar.write(xStream.toXML(automato).getBytes());
            gravar.close();
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }
    }

    @Override
    public Automato load(File arquivo) {
        Automato automato = null;
        
        try {
            XStream xStream = new XStream(new DomDriver());
            xStream.alias("automato", Automato.class);
//        String xml = xStream.toXML(usuario);  
            automato = (Automato) xStream.fromXML(arquivo);

        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    return automato;
    }
    
}

